home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 081-090 / amok84 / envsupport / envsupport.mod < prev    next >
Text File  |  1993-11-04  |  2KB  |  71 lines

  1. (*---------------------------------------------------------------------------
  2.   :Program.    EnvSupport
  3.   :Author.     Thomas Igracki
  4.   :Address.    Obstallee 45, 1000 Berlin 20, W-Germany
  5.   :E-Mail.     InterNet -> lokai@cs.tu-berlin.de
  6.   :E-Mail.     Z-Netz   -> T.Igracki@BAMP.ZER
  7.   :E-Mail.     Fido     -> Thomas_Igracki%2:2403_10.40
  8.   :Version.    1.0
  9.   :Date.       25-Oct-1992
  10.   :Copyright.  Thomas Igracki (If you like to use it, contact me!)
  11.   :Language.   Oberon
  12.   :Translator. Amiga Oberon 2.14d
  13.   :Contents.   SetEnv(), GetEnv(), AddEnv(), CutEnv(), ToggleEnv(), TestEnv()
  14.   :Usage.      IMPORT EnvSupport;
  15.   :Remark.     OS2.0 Only!
  16. ---------------------------------------------------------------------------*)
  17. MODULE EnvSupport;
  18. IMPORT
  19.    s: SYSTEM, d: Dos, st: Strings;
  20. VAR
  21.    flags: LONGSET; p: LONGINT; buffer: ARRAY 256 OF CHAR;
  22.  
  23. PROCEDURE Local* (local: BOOLEAN); (* Globale oder locale Envs? *)
  24. BEGIN
  25.      IF local THEN flags := LONGSET{d.localOnly}
  26.               ELSE flags := LONGSET{d.globalOnly} END;
  27. END Local;
  28.  
  29. PROCEDURE SetFlags* (newFlags: LONGSET);
  30. BEGIN     flags := newFlags
  31. END SetFlags;
  32.  
  33. PROCEDURE SetEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
  34. BEGIN     RETURN d.SetVar (Name,String,-1,flags)
  35. END SetEnv;
  36.  
  37. PROCEDURE GetEnv* (Name: ARRAY OF CHAR; VAR Buff: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
  38. BEGIN     RETURN d.GetVar (Name,Buff,LEN(Buff),flags)#-1
  39. END GetEnv;
  40.  
  41. PROCEDURE AddEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
  42. BEGIN
  43.      IF ~GetEnv (Name,buffer) THEN RETURN FALSE END;
  44.      st.Append (buffer,String);
  45.      RETURN SetEnv (Name,buffer)
  46. END AddEnv;
  47.  
  48. PROCEDURE CutEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
  49. BEGIN
  50.      IF ~GetEnv (Name,buffer) THEN RETURN FALSE END;
  51.      p := st.Occurs (buffer,String); IF p = -1 THEN RETURN FALSE END;
  52.      st.Delete (buffer,p,st.Length(String));
  53.      RETURN SetEnv (Name,buffer)
  54. END CutEnv;
  55.  
  56. PROCEDURE TestEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
  57. BEGIN
  58.      IF ~GetEnv (Name,buffer) THEN RETURN FALSE END;
  59.      RETURN st.Occurs(buffer,String)#-1
  60. END TestEnv;
  61.  
  62. PROCEDURE ToggleEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
  63. BEGIN
  64.      IF TestEnv(Name,String) THEN RETURN CutEnv(Name,String)
  65.                             ELSE RETURN AddEnv(Name,String) END;
  66. END ToggleEnv;
  67.  
  68. BEGIN
  69.      flags := LONGSET{d.globalOnly}; (* Default: Globale Envs *)
  70. END EnvSupport.
  71.